package com.shujia.wyh.day08;

/*
        形式参数的问题：
            基本数据类型作为形式参数的时候：形式参数的改变不会影响到实际参数
            引用数据类型作为形式参数的时候：形式参数的改变会直接影响到实际参数


 */
//引用数据类型作为形式参数的时候
class Student {
    String name;
    public void study(){
        System.out.println("我正在学习");
    }
}

class StudentTest{
    //如果将来你看到一个方法的形式参数是一个类的类型的话，说明他是一个引用数据类型
    //这里其实需要是一个该类的对象
    //调用的时候，把main方法中的student对象的额地址值传到这款里，这里的形参将来调用的时候，就被赋值上了实际的地址值
    public void function(Student s){ //Student s = new Student();
        s.study();
        s.name = "小虎";
    }
}

//形式参数是基本数据类型的时候
class Demo2{
    public int sum(int a,int b){
        return a+b;
    }
}

public class StudentDemo {
    public static void main(String[] args) {
        int a = 2;
        int b = 3;

        //创建Demo2类的一个对象
        Demo2 demo2 = new Demo2();
        int sum = demo2.sum(a, b);
        System.out.println(sum);
        System.out.println("a:"+a);
        System.out.println("b:"+b);

        System.out.println("=========================");
        //创建Student类的对象
        Student student = new Student();
        StudentTest st = new StudentTest();
        System.out.println("调用方法之前name:"+student.name);
        st.function(student);
        System.out.println("调用方法之后name:"+student.name);

    }
}
